/* .then() 方法的特性
如果上一个 .then() 方法中返回了一个新的 Promise 实例对象，则可以通过下一个 .then() 继续进行处理。通
过 .then() 方法的链式调用，就解决了回调地狱的问题。
基于 Promise 按顺序读取文件的内容
Promise 支持链式调用，从而来解决回调地狱的问题。
*/
import thenFs from 'then-fs'

thenFs.readFile('./files/1.txt', 'utf8').then(r1 => {
    console.log(r1)
    return thenFs.readFile('./files/2.txt', 'utf8')   // 在第一个 .then 中返回一个新的Promise 实例对象
}).then(r2 => {
    console.log(r2)
    return thenFs.readFile('./files/3.txt', 'utf8')
}).then(r3 => {
    console.log(r3)
}).catch(err => {  //捕获之前所有的错误
    console.log(err.message)
})